///@cond
package
{
	import com.junkbyte.console.Cc;
	
	///@endcond
	
	
	/** Message flow description (specification) within embodiment description.*/
	public class F
	{
		public var _msg : Class;
		public var _css : Vector.< CS > = new Vector.< CS >;
		
		public var _ok : Boolean = true;
		
		
		/**
		\param msg All CSs within single flow has the same message type.
		\param cs Flow must have at least single CS.
		\param css Any subsequent CSs.
		*/
		public function F( msg : Class, cs : CS, ... css )
		{
			_msg = msg;
			
			_css.push( cs );
			
			for ( var i : int = 0; i < css.length; ++i )
			{
				var anotherCS : CS = css[ i ] as CS;
				if ( anotherCS == null )
				{
					Cc.error( "E: CDSE: wrong param to F()." );
					_ok = false;
					return;
				}
				
				_css.push( anotherCS );
			}
		}
		
	}

}



